Integrated circuit devices are used in a wide variety of modern appliances, such as computers, automobiles, telephones, televisions, manufacturing tools, satellites and even toys. While even a small integrated circuit device can provide a great deal of functionality, almost every integrated circuit device must be electrically connected to an input or output device, to another integrated circuit device, or to some other electronic component in order to be useful. To provide these electrical connections, integrated circuit devices are typically mounted on a printed circuit board (PCB). Most printed circuit boards have a rigid, planar core. The core may be formed, for example, of a sheet of fiberglass material impregnated with epoxy. Conductive lines or “traces” then are formed on one or both surfaces of the core, to electronically connect the components attached to the printed circuit board. The traces may be formed of any desired conductive material, such as copper. With various manufacturing techniques, material, specific traces may be created by etching a single layer of conductive material in a photolithographic process.
Simple printed circuit boards may have only a single core, with traces on one or both sides of the core. More complex printed circuit boards, however, may have multiple cores, with traces on one or both sides of one or more of the cores. These multilayered printed circuit board also may include layers of insulating material, to prevent traces on adjacent core surfaces from contacting. In addition, a multilayered printed circuit board also will include one or more “vias” to electrically connect two or more different layers of the board. A via is created by drilling or otherwise forming a hole through one or more cores. The walls of the via then may be clad with conductive material to form an electrical connection between the different layers. Alternately or additionally, the entire via may be filled with conductive material to form the electrical connection. Some vias will pass through every layer of the board, while other vias may connect only some of the layers in the board. Some vias, referred to as “blind” vias, will connect only internal layers of the board, and are not connected to either the uppermost or lowermost layers. As will be explained in more detail below, vias are employed where, for example, a component requires more traces than can be routed in a corresponding area of a single board layer. The vias allow the component to connect to traces on other layers of the board.
There are a number of steps performed in the design of a printed circuit board. Initially, a designer will create a schematic diagram for the system to be connected through the printed circuit board. This process includes identifying each component that will be included in the system. A system can include “active” components, such as field programmable gate array (FPGA) integrated circuits or application-specific integrated circuits (ASICs). A system also can include “passive” components, such as connectors formed as an integrated circuit, resistors, capacitors, and inductors. In addition to identifying each component, the schematic design will represent the electrical connections that must be formed between each component. Next, a designer typically will verify the functionality of the system described in the schematic design. The design may, for example, use software modeling tools to ensure that the system described in the schematic will reliably perform the desired operations. If any errors are detected, then the schematic design will be corrected to address the errors, and the functional verification process repeated.
Once the schematic design is finalized, then the designer will create a physical design to implement the schematic design. The designer will begin by selecting a physical location in the design for each component. When a location for a component has been selected, the designer will add a component object, representing that component, to that location in the printed circuit board design. The component object may include a variety of information regarding the physical component it represents, such as the configuration of the connection pins used to electrically connect that component to other components. With an integrated circuit device, for example, the substrate with the integrated circuit will be encased in a package for protection from the environment. The pins serve to provide an electrical connection, through the packaging, to the electrical contacts of the integrated circuit. After the component objects for the components are located in the printed circuit board design, the designer then will attempt to route traces in the printed circuit board design to connect the components as specified in the schematic design.
Various aspects of the system, however, may create a variety of constraints restricting how the designer can route the traces. For example, a component's minimum current requirement may require that the trace supplying that current have a minimum width. Also, traces may require a minimum separation distance to prevent unacceptable crosstalk. Still further, if a component requires a differential pair connection, then the traces used to implement that differential pair may need to have the same length and maintain a constant distance from each other. Timing constraints may limit the length and/or impedance of a trace. Moreover, because a trace cannot cross over another trace, connections between component pins may require routing traces on multiple layers of the printed circuit board.
Accordingly, after creating an initial physical design, a designer may revise it several times before it is finished. These revisions may include, for example, moving the pathways for traces, altering the width of traces at various points along their lengths creating partial traces or “hangers,” moving the location of one or more of the components, and rotating the orientation of one or more of the components. Each revision, however, may itself require related revisions. For example, if a component is moved or rotated, then every existing trace associated with that component must be discarded and replaced.
With some components, the designer may even reposition the pins relative to each other. For example, the schematic design may call for first component to output a data signal to a second component. Depending upon how the components are arranged, however, the pin designated for that output signal may be on a side of the first component opposite the second component. Rather than move either of the components, the designer may instead reconfigure the first component so that the data signal is output on another pin closer to the second component. This “pin-swapping” technique is particularly useful for field programmable gate arrays, where the configuration of a circuit layout can readily be changed by reprogramming the gate array.
In order to swap pins efficiently, a designer may employ a netline before routing the traces. A netline is a graphical line rendered in a physical design for a printed circuit board that spans each pin in a “net” (where a “net” is represented by a single node of the schematic design). FIG. 1 illustrates netlines 101 extending between pins 103 of two separate components 105 and 107. Crossing netlines (e.g., netlines 101A and 101B) suggest that routing traces between their associated pins would be complicated, possibly requiring that the traces be routed on separate layers. To simplify the routability of the traces, a designer may employ a pin-swapping algorithm to reduce or eliminate crossing netlines. FIG. 2 illustrates the components shown in FIG. 1, with the pins reconfigured to prevent crossing netlines. Once a revised pin configuration has been determined, the circuit layout of the component is updated to provide the desired pin configuration, and the traces routed between the relevant pins.
After the designer has established a physical design for the printed circuit board, it is analyzed to verify that it meets specified parameters. For example, the design may be analyzed to confirm that it complies with various manufacturing constraints, such as minimum spacing between traces, minimum trace widths, minimum or maximum turn angles for traces, etc. Alternately or additionally, the designer may verify that the signal integrity and timing delays for the physical design meet desired parameters, to ensure that the signals to be carried by the traces will not be degraded by crosstalk, overshoot or undershoot. Still further, the designer may verify that the electromagnetic radiation that will be generated by the physical design will not exceed specified parameters. These verification processes may be performed using, for example, conventional printed circuit board design verification software tools. If any errors are detected, then the physical design will be corrected to address the errors, and the verification processes repeated. Thus, complying with the verification requirements may necessitate several more changes to the physical design.
As integrated circuit devices have evolved to include smaller and more circuits, it has become increasing difficult to create a physical design for a printed circuit board. For example, a D-type positive edge triggered flip-flop circuit may require 14 pins. Whereas an integrated circuit device might have included only a single circuit of this type several years ago, improvements in integrated circuit manufacturing may now allow an even smaller integrated circuit device to include hundreds of these circuits, requiring more than a thousand pins in a reduced area.
New pin configurations have been developed to permit these more complex integrated circuit devices. Many integrated circuit devices, for example, now use a ball grid array (BGA) structure. With a ball grid array, the pins are formed by balls of solder mounted on the bottom of the package encasing the integrated circuit device. The printed circuit board in turn has a corresponding array of pads, formed of a conductive material such as copper, which matches the positions of the solder balls on the integrated circuit device. To connect the integrated circuit device to the printed circuit board, the integrated circuit device is placed on the printed circuit board so that the balls of solder align with the conductive pads. The solder balls then are melted onto the pads, typically in a reflow oven or by using an infrared heater.
While these new pin configuration allow an integrated circuit device to provide a large number of pins in a relatively small area, their compactness increases the difficulty in routing traces to the pins. As shown in FIG. 3, for example, a ball grid array may have a square array of 1760 pins with a spacing of only 1 mm between adjacent pins. With this arrangement, there are only 160 “spaces” between adjacent pins around the perimeter of the array through which to route traces. There are 1600 pins within the perimeter of the array, however. Even if the routing constraints allow two traces to be routed between adjacent pins, traces can be directly routed to only 320 of the pins within the perimeter of the array. While vias to multiple layers can be employed to route traces to more of the remaining 1280 pins, the addition of extra layers significantly increases the cost of manufacturing a printed circuit board. Moreover, even if additional layers are used, the routing for this type pin density will still be very complex. If the component's position in the printed circuit board design is rotated or moved, then all of the previously-routed traces are discarded, and the complex work of routing traces to the pins of the component must be repeated.
To address the complexity of these new pin configurations, some printed circuit board designers will employ “breakouts.” As used herein, a breakout includes an “escape” trace running from a pin within a pin array to a location at or beyond the perimeter of the pin array. For example, FIG. 4 illustrates breakouts 401 that may be routed for the pin array 301 shown in FIG. 3. As seen in this figure, each breakout 401 has an endpoint a short distance outside of the perimeter of the pin array 301. If the escape traces are routed on a layer below the top surface of the printed circuit board, then the breakout also will include the via or vias required to connect the pin to the layer on which the escape trace is routed. This type of via is conventionally referred to as a “fanout” via. Still further, if a fanout via is offset from the pin, then the breakout also will include the offset trace required to connect the pin to the offset fanout via. Once breakouts routed to or past the perimeter of the pin array, the designer typically will have more flexibility to route connection traces between the end of the breakouts and other components (or breakouts for other components).
While breakouts help simplify routing for a printed circuit board, they also present a number of problems. For example, when creating escape traces for a breakout, it is difficult for the designer to determine how far the escape traces should extend from the pin. Without a boundary having specific properties appropriate for defining escape traces, not only is it more difficult to add and modify the traces with conventional interactive routing tools, but it is also difficult for automatic routing tools to identify which traces are escapes and apply the appropriate routing behavior for these traces. Moreover, it may be difficult for a designer or an automatic routing tool to distinguish escape traces from “hanger” traces. As shown in FIG. 5, a hanger traces is a trace that does not extend from a pin sufficiently to be considered an escape trace, and thus does not form a breakout. Hanger traces may be manually formed by printed circuit board designer using an interactive routing tool, or may be automatically formed by an automatic routing tool. While hanger traces may appear similar to escape traces, they serve a different function, and are typically treated differently than escape traces.
Further, the use of breakouts reduces the effectiveness of netline optimization analysis. As shown in FIG. 2, the pins were reconfigured to prevent the netlines from crossing, to thereby simplify the process for routing traces to the pins. If new netlines are created from the endpoint of the breakouts, however, then these new netlines may cross over each other as shown in FIG. 6. As previously noted, crossing netlines indicate the that corresponding traces would either need to be routed through different layers of the printed circuit board, require a relatively complex routing path, or both. Thus, as seen in FIG. 6, the use of breakouts can frustrate the advantages offered by pin-swapping based upon a netline optimization analysis.